package com.wjm.blog.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wjm.blog.system.entity.SysDictionaryEntity;
import com.wjm.blog.system.vo.request.SysDictionarySaveVo;
import com.wjm.blog.system.vo.request.SysDictionaryQueryVo;
import com.wjm.blog.system.vo.response.SysDictionaryDetailVo;
import com.wjm.blog.system.vo.response.SysDictionaryListVo;

import java.util.List;

/**
 * 数据字典信息表Service接口类
 *
 * @author wjm
 * @date 2023-10-18T14:34:39.067
 * @version 1.0
 */
public interface ISysDictionaryService extends IService<SysDictionaryEntity> {

    /**
     * 数据字典信息表分页查询
     *
     * @param queryVo 查询接口
     * @return 数据字典信息表分页列表
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.067
     */
    IPage<SysDictionaryListVo> page(SysDictionaryQueryVo queryVo) throws Exception;

    /**
     * 数据字典信息表列表查询
     *
     * @param queryVo 查询接口
     * @return 数据字典信息表列表
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.067
     */
    List<SysDictionaryListVo> list(SysDictionaryQueryVo queryVo) throws Exception;

    /**
     * 数据字典信息表详情查询
     *
     * @param id 主键ID
     * @return 数据字典信息表详情
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.067
     */
    SysDictionaryDetailVo get(Long id) throws Exception;

    /**
     * 数据字典信息表新增
     *
     * @param saveVo 数据字典信息表保存VO
     * @return 操作结果
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.067
     */
    boolean insert(SysDictionarySaveVo saveVo) throws Exception;

    /**
     * 数据字典信息表修改
     *
     * @param id 主键ID
     * @param saveVo 数据字典信息表保存VO
     * @return 操作结果
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.067
     */
    boolean update(Long id, SysDictionarySaveVo saveVo) throws Exception;

    /**
     * 数据字典信息表作废(批量)
     *
     * @param ids 主键ID集合
     * @return 操作结果
     * @throws Exception 异常信息
     * @author wjm
     * @version 1.0
     * @date 2023-10-18T14:34:39.067
     */
    boolean invalid(List<Long> ids) throws Exception;
}
